package com.syh.jn.scm.domain.supplier.repository.stock;

import cn.redscarf.commons.wrapper.Wrapper;
import com.syh.core.ddd.infrastructure.repository.ReadRepo;
import com.syh.jn.scm.domain.supplier.entity.stock.StockRecord;
import com.syh.jn.scm.dto.supplier.stock.StockRecordItemVo;

import java.util.List;

/**
 * 出入库记录
 */
public interface StockRecordReadRepository extends ReadRepo<StockRecord, Long> {

  /**
   * 根据字段名column与字段值id查找是否有相应库存记录 有则返回true
   * @param column
   * @param id
   * @return
   */
  boolean stockRecordItemExistsById(String column, Long id);

  /**
   * 根据物流单id获取出入库记录
   *
   * @param logisticsBillId
   */
  public StockRecord getByLogisticsBillId(Long logisticsBillId);

  /**
   * 根据出入库记录id获取出入库记录项
   *
   * @return
   */
  List<StockRecordItemVo> findStockRecordItemListPage(Wrapper wrapper, Integer startRow, Integer count);

  /**
   * 根据出入库记录id获取出入库记录项数量
   *
   * @return
   */
  int findStockRecordItemListPageCount(Wrapper wrapper);

  /**
   * 根据出入库记录id获取出入库记录项
   *
   * @param stockRecordId
   * @return
   */
  List<StockRecordItemVo> findStockRecordItemsByStockRecordId(Long stockRecordId);

}
